package ruifight.member.dao.base;

import java.io.Serializable;
import java.util.List;

import org.apache.ibatis.annotations.Param;

public interface BaseMapper<T1,T2,PK extends Serializable> {
	
	/**
     * 通过id删除
     */
    int deleteByPrimaryKey(PK p);
    
    /**
     * 通过条件删除
     */
    int deleteByExample(T2 example);
    
    /**
     *添加
     */
    int insert(T1 t);

    /**
     *不为空字段添加
     */
    int insertSelective(T1 t);

    /**
     *通过id查询
     */
    T1 selectByPrimaryKey(PK p);

    /**
     *通过id不为空字段修改
     */
    int updateByPrimaryKeySelective(T1 t);

    /**
     *通过id修改
     */
    int updateByPrimaryKey(T1 t);
    
    /**
     * 通过条件不为空字段修改
     */
    int updateByExampleSelective(@Param("record") T1 t, @Param("example") T2 example);

    /**
     * 通过条件修改
     */
    int updateByExample(@Param("record") T1 t, @Param("example") T2 example);
    
    /**
     * 通过条件查询数量
     */
    int countByExample(T2 example);
    
    /**
     * 通过条件查询集合
     */
    List<T1> selectByExample(T2 example);
}
